/**
 * Steven Cozart
 * 2011
 */

/**
 * @author Steven Cozart
 * @version 0.0
 */
public interface Territory {

	/**
	 * The name of the country.
	 * @return Name of country.
	 */
	public String getName();
	
	/**
	 * Army size within the country.
	 * @return Current size of army within the country.
	 */
	public Army getArmy();
	
	/**
	 * Army size within the country.
	 * @return Current size of army within the country.
	 */
	public int getArmySize();

	
	/**
	 * The owner of the country.
	 * @return The current owner of the country.
	 */
	public Player getOwner();
	
	/**
	 * If the country is connected to the provided country.
	 * @return If country is connected.
	 */
	public boolean isConected(String the_conected);
	

	/**
	 * Sets owner of country.
	 */
	public void setOwner(Player the_player);

	/**
	 * Sets army size within the given country.  
	 * @param the_defending The size of the army in that country.  
	 */
	public void setArmySize(int the_defending);
	
	/**
	 * Declares a given territory as being adjacent.  After an invocation
	 * this should also be recognized as adjacent by the_territory.
	 * @requires
	 * @ensures
	 * @param the_territory
	 */
	// TEST COMPLETE? TODO
	// DOC COMPLETE? TODO
	public void addNeighbor(Territory the_territory);
	
	public boolean isNeighbor(Territory the_territory);
	
	
	
	
}
